本文转自知乎专栏“跟宝哥学IT”,原文链接:https://zhuanlan.zhihu.com/p/55471521
不论是自动化测试还是手工测试都是软件测试方法的一种,都是软件质量保障的手段,不存在low与高大上之说。如何根据各自的优缺点,更高效地完成软件质量保障才是最值得大家关注的。今天就来快速了解一下手工测试&自动化测试。
一、手工测试
通过模拟终端用户的业务流程应用软件系统,检查被测对象实际表现与预期结果间的差异,测试工程师手工运行被测对象,这种模式即为手工测试。
手工测试是最传统的测试方法,也是现在大多数公司普遍采用的测试形式。测试工程师设计、执行测试用例,比较实际结果与预期结果,记录两者的差异,最终输出缺陷报告和测试报告。
手工测试方法可以充分发挥测试工程师的主观能动性,将其智力活动体现于测试工作中,能发现很多的缺陷,但该测试方法有一定的局限性与单调枯燥性。当测试周期变长,业务重复性较大时,手工测试容易变得枯燥乏味。
二、自动化测试
随着软件行业的不断发展,软件测试技术也在不断地更新,出现了众多的自动化功能测试工具,如HP的Quick Test Professional(最新版本名为UFT)及开源的Selenium(见图1)。性能测试工具如LoadRunner、JMeter等。
所谓自动化测试,即利用测试工具,编程实现模拟用户业务使用流程的脚本,设定特定的测试场景,自动寻找缺陷。自动化测试的引入,大大地提高了测试效率和准确性,而且封装性较好的测试脚本,还可应用于其他产品项目。业内通常将自动化功能测试称为自动化,而性能测试单独成体系,不含在自动化测试中。
图1 Selenium工具示例
1、自动化测试优点
自动化测试的优点是快速、可重用,替代人的重复活动。回归测试阶段,可利用自动化测试工具进行,无须大量测试工程师手动重复执行测试用例,极大地提高了工作效率。
有时做压力测试,需要几万甚至几十万个用户同时访问某个站点,以保证网站服务器不会出现死机或崩溃现象。一般来说,模拟几万人同时访问某个系统,通过人工很难实现,但利用测试工具,如LoadRunner,可非常容易地做到。
2、自动化测试缺点
当然,自动化测试的缺点也很明显,它们只能检查一些比较主要的问题,如崩溃、死机,但却无法发现新的错误。另外,在自动测试中编写测试脚本的工作量也很大,有时该工作量甚至超过了手动测试的时间。
在自动化测试活动中,测试工具的应用,可以提高测试质量、测试效率。但在选择和使用测试工具时,也应该看到在测试过程中,并不是所有的测试工具都适合引入。同时,即使有了测试工具,会使用测试工具,也不等于测试工具真正能在测试中发挥作用。
因此,应该根据实际情况选择测试工具,选择使用何种测试工具,千万不可为了使用工具而刻意地使用工具。在目前软件系统研发环境下,自动化测试完全替代手工测试是不可能的。
自动化测试不仅仅运用在系统测试层面,在单元测试、集成测试阶段同样可以使用自动化测试方法进行测试。